Jak na spravne osetreni DB vyjimek
Otázka od: Ing. Petr Sikola
16. 9. 2004 12:34
Zdravim,
Pouzivam D5Ent, ADO, MSSQL, WXP
Mam serverovou aplikaci, ktera komunikuje s databazi (ADO), potrebuju
odchytnout vyjimku, ze neni spojeni s DB.
Zatim to resim takhle:
try
// nejaky db dotaz
except
on E: EOleException do
begin
if (e.ErrorCode and CO_E_OBJNOTCONNECTED) = CO_E_OBJNOTCONNECTED
then
begin
dta.ADOConnection.Connected := false;
WriteDebugLog('neni spojeni s DB');
TImerDBrefresh.enabled := true;
exit;
end;
end;
end;
Ale odchytavani pouze CO_E_OBJNOTCONNECTED asi nebude to prave (urcite
jich bude vice).
V podstate by me mozna i stacilo udelat to, ze pokud dojde k preruseni
spojeni s DB tak nastavit ADOConnection.connected na false, coz se samo
automaticky neudela (a pri opetovnem pripojeni databaze musim udelat
manualne connected:=false a connected:=true, aby se spojeni obnovilo)
Takze otazky:
1) jak nejlepe odchytavat DB vyjimky
2) kde sehnat spravne ErrorCode konstaty
3) jak donutit adoconnection, aby pri vypadku spojeni s DB samo
nastavilo connected na false
4) jak odchytavat vyjimky od db dotazu nejak globalne, abzch to nemusel
psat ke kazdemu dotazu zvlast
Diky za odpovedi
Petr Sikola